#ifndef GPUMONITORINTERFACE_H
#define GPUMONITORINTERFACE_H
#include <optional>

/**
 * @class GpuMonitorInterface
 * @brief GPU监视器接口
 * 
 * 这是一个抽象基类，请根据GPU型号厂商具体实现接口。
 */
class GpuMonitorInterface{
public:
    /**
     * @brief 获取GPU核心占用（%）
     * @return 占用率，返回 -1 为获取失败，范围 [0, 100]
     */
    virtual std::optional<double> getGpuCoreUsage() = 0;

    /**
     * @brief 获取GPU内存占用率（%）
     * @return 占用率，返回 -1 为获取失败，范围 [0, 100]
     */
    virtual std::optional<double> getGpuMemUsage() = 0;

    /**
     * @brief 获取GPU核心温度
     * @return 核心温度，返回 -1 为获取失败
     */
    virtual std::optional<double> getGpuCoreTemp() = 0;
};

#endif // GPUMONITORINTERFACE_H
